#ifndef MD5_HASHER_H
#define MD5_HASHER_H

#include <botan/base.h>
#include <botan/lookup.h>

#include "Hash.h"

class Md5Hasher {

public:

	Md5Hasher();
	~Md5Hasher();
	void process(unsigned char* data, int length);
	const Hash& getHash() const;

private:

	static Botan::HashFunction* _baseHashFunction;

	Botan::HashFunction* _hashFunction;
	Hash _hash;
	bool _hashValidity;

	static void _ensureBaseHashFunction();
};

#endif	// MD5_HASHER_H

